import { BrowserWindow } from 'electron';
import { ipcRenderer } from 'electron';

/**
 * 发送日志信息到渲染进程
 * @param message - 日志消息内容
 * @param type - 日志类型，可选值为 'info'、'warning'、'error'，默认为 'info'
 * @param details - 日志详细信息，可选
 */
export const sendLogToRenderer = (message: string, type: 'info' | 'warning' | 'error' = 'info', details?: string) => {
    console.log('[SEND LOG]', {message, type, details});
    if (!message || typeof message !== 'string') {
        console.error('Invalid log message:', message);
        message = `[Invalid Message] ${typeof message}`;
    }
    const logData = { 
        message: message || 'empty message',
        type: type.toLowerCase() === 'warning' ? 'warn' : type, // 修正类型匹配主进程枚举
        details: details || '',
        time: new Date().toLocaleTimeString()
    };
    
    if (process.type === 'browser') { // 主进程
        console.log('[MAIN LOG]', logData);
        BrowserWindow.getAllWindows().forEach(win => {
            win.webContents.send('log-message', logData);
        });
    } else { // 渲染进程
        console.log('[RENDER LOG]', logData);
        ipcRenderer.send('log-message', logData);
    }
};
